The invention pertains to digital data processing and, more particularly, to methods and apparatus for implementation of object-oriented programming (OOP) objects. The invention has application, by way of non-limiting example, in the design and implementation of Business Process Management (BPM) systems, including, by way of non-limiting example, workflow applications.
The popularity of languages like C++ and Java, and of programming design methodologies like Booch and UML is, in large part, due to the object-oriented programming paradigm supported by these systems. Of late, these methodologies have been extended from more conventional programming languages to mark-up languages, such as XML, which permit ready definition of structured “documents” that are easily transmitted over networks (such as the Internet) and that can contain object-like data.
Objects are a very natural and intuitive way to model complex systems; they correspond closely to the way human domain experts think about a particular application. In general, objects typically correspond to “nouns”; the relevant things for a particular application. Attributes of the objects correspond to adjectives that provide details about the objects, and methods of the objects correspond to verbs that change the state of the object. This sort of correspondence supports rapid development of complex systems, often by individuals who are domain experts more than they are programmers.
An example domain area where the object-oriented paradigm has been used extensively is workflow applications, where work items, resources, and constraints are modeled as objects. Workflow applications typically require modeling complex business processes. Such modeling requires sophisticated data structures in order to adequately represent all the relevant information. Such applications are characterized by large numbers of classes, deep class hierarchies, and intricate links between associated object instances.
One important characteristic of workflow applications is that they are very dynamic; the information associated with a work item changes significantly as the work item is passed from operation to operation in the business process. Such information changes can be frequent, as the business process may be very detailed, and many enterprises have near real-time performance of such transactions as a goal.
Typically, a work item is represented using a very simple object that contains information like the work item's ID, its due time, etc. All other information, e.g., pertaining to the work item's ever-changing states, is represented in objects that are related to the work item. This is a perfectly valid approach under the object-oriented programming paradigm. However, it does lead to a lot of complexity as there may be a large number of objects related to the work item in intricate or indirect ways. This can present a problem for a programmer attempting to model the work item and the workflow of which it is a part.
In view of the foregoing, an object of this invention is to provide improved methods and apparatus for digital data processing and, more particularly, for example, for modeling and processing workflows.
A related object of the invention is to provide methods and apparatus for improved implementation of object-oriented programming (OOP) objects.
A further object is to provide such methods and apparatus as can be implemented in any variety of programming languages and/or on any variety of platforms.
A still further object is to provide such methods and apparatus as simply the modeling of workflows or other processes that utilize items of changing state.